﻿'NHIỆM VỤ:
' 
'   Thực hiện BOOL Algebra trên giá trị Y/N   
'
Option Explicit On 
Option Strict On


Public Class YNBool
    Private Const C_YES As String = "Y"
    Private Const C_NO As String = "N"
    Private Const C_STR_CO As String = "Có"
    Private Const C_STR_KHONG As String = "Không"



    'Chuyển từ Boolean sang Y_N
    Public Shared Function Boolean2YN(ByVal i_bBoolean As Boolean) As String
        If i_bBoolean Then
            Return C_YES
        Else
            Return C_NO
        End If
    End Function
    'Chuyển từ Y_N sang Boolean
    Public Shared Function YN2Boolean(ByVal i_strYN As String) As Boolean
        If i_strYN = C_YES Then
            Return True
        Else
            If i_strYN = C_NO Then
                Return False
            Else
                Debug.Assert(False)
                'Nếu chương trình bị dừng ở đây 
                'thì chuỗi truyền vào là không hợp lệ
            End If
        End If
    End Function
    '
    Public Shared Function Negalt(ByVal i_strYN As String) As String
        If i_strYN = C_YES Then
            Return C_NO
        ElseIf i_strYN = C_NO Then
            Return C_YES
        Else
            Debug.Assert(False, "Khong phai la YN string")
        End If
    End Function

    'set dữ liệu cho cbo dạng  Có - Không
    Public Shared Function SetData2CboYN() As ArrayList
        Dim v_arr_list As ArrayList = New ArrayList
        v_arr_list.Add(C_STR_CO)
        v_arr_list.Add(C_STR_KHONG)
        Return v_arr_list
    End Function
    Public Shared Function SetData2CboNY() As ArrayList
        Dim v_arr_list As ArrayList = New ArrayList
        v_arr_list.Add(C_STR_KHONG)
        v_arr_list.Add(C_STR_CO)
        Return v_arr_list
    End Function

    'Chuyển từ Y_N sang Có - Không
    Public Shared Function YN2CoKhong(ByVal i_strYN As String) As String
        If i_strYN = C_YES Then
            Return C_STR_CO
        Else
            If i_strYN = C_NO Then
                Return C_STR_KHONG
            Else
                Debug.Assert(False, "Gia tri dau vao phai la Y-N")
                'Nếu chương trình bị dừng ở đây 
                'thì chuỗi truyền vào là không hợp lệ
            End If
        End If
    End Function
    'Chuyển từ Có - Không sang Y-N
    Public Shared Function CoKhong2YN(ByVal i_strCoKhong As String) As String
        If i_strCoKhong = C_STR_CO Then
            Return C_YES
        Else
            If i_strCoKhong = C_STR_KHONG Then
                Return C_NO
            Else
                Debug.Assert(False, "Phai co gia tri dau vao Co - Khong")
                'Nếu chương trình bị dừng ở đây 
                'thì chuỗi truyền vào là không hợp lệ
            End If
        End If
    End Function
End Class
